ed8ede7b8a4a3dcb5ffe9d3b1e44f9809106a778,java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ContractInference.java,ContractInferenceInterpreter,visitLogicalOperation,#PsiExpression[]#boolean#List#,322
Before Change
for (PsiExpression operand : operands) {
List<MethodContract> opResults = visitExpression(states, operand);
finalStates.addAll(filterReturning(opResults, breakValue));
states = antecedentsOf(filterReturning(opResults, negateConstraint(breakValue)));
}
finalStates.addAll(toContracts(states, negateConstraint(breakValue)));
return finalStates;
After Change
for (PsiExpression operand : operands) {
List<MethodContract> opResults = visitExpression(states, operand);
finalStates.addAll(ContainerUtil.filter(opResults, contract -> contract.returnValue == breakValue));
states = antecedentsReturning(opResults, negateConstraint(breakValue));
}
finalStates.addAll(toContracts(states, negateConstraint(breakValue)));
return finalStates;